home *** CD-ROM | disk | FTP | other *** search
Wrap
(*************************************************** Ant Movie Catalog importation script www.antp.be/software/moviecatalog/ [Infos] Authors=ScorEpioN Title=Amazon.fr (Image Only) Description=Grande Image et titre Amazon.fr Site=http://www.amazon.fr Language=FR Version=03 du 07/03/2005 Requires=3.5.0 Comments= License=This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. | GetInfo=1 [Options] Type de Lancement=0|0|0=Demande le titre avant de lancer le script|1=Ne demande pas le titre avant de lancer le script|2=Cherche la meilleur image sans confirmation Format du Titre=3|3|0=Titre en minuscule|1=Titre en majuscule|2=PremiΦre lettre du titre en majuscule|3=PremiΦre lettre de chaque mot du titre en majuscule Recherche sur le titre=0|0|0=Traduit|1=Original ***************************************************) program Amazon_FR; var MovieName, Address : string; compteur, premiereExecution: Integer; //------------------------------------------------------------------------------ // VERIFIER LA VERSION DU SCRIPT //------------------------------------------------------------------------------ procedure verifVersion(); var Line, NewVersion : String; BeginPos, EndPos : Integer; begin Line := GetPage('http://forum.antp.be/phpbb2/viewtopic.php?t=1453'); BeginPos := pos('TELECHARGER LE SCRIPT AMAZON.FR (IMAGE ONLY) v', Line); delete(Line,1, BeginPos+45); EndPos := pos('du', Line); NewVersion := copy(Line, 1, EndPos - 2); if (ShowConfirmation('La derniΦre version est la '+NewVersion+'. Cliquer sur ''''OUI'''' pour la tΘlΘcharger.') = True) then begin Launch('iexplore.exe','http://www.ifrance.com/ricoland/Amazon%20Image%20(FR).ifs'); end else exit; end; //------------------------------------------------------------------------------ // MET LE TITRE AU BON FORMAT //------------------------------------------------------------------------------ function formatTitre(titre : String; option : Integer) : string; begin if (option = 0) then begin titre := AnsiLowerCase(titre); end else if (option = 1) then begin titre := AnsiUpperCase(titre); end else if (option = 2) then begin titre := AnsiUpFirstLetter(titre); end else if (option = 3) then begin titre := AnsiMixedCase(titre,' -'); end; result := titre; end; //------------------------------------------------------------------------------ // RECUPERE GRANDE IMAGE AMAZON.FR //------------------------------------------------------------------------------ procedure imageAmazon(title : String); var adresseRecherche, Line : String; StartPos: Integer; begin PickTreeClear; adresseRecherche := 'http://www.amazon.fr/exec/obidos/search-handle-url/index=dvd-fr&field-keywords='+UrlEncode(title); Line := GetPage(adresseRecherche); if pos('satisfaisante pour votre recherche sur', Line) > 0 then begin exit; end else if (pos('Sur ce DVD', Line) > 0) or (pos('Amazon.fr : DVD:', Line) > 0) then begin importAmazon(Line); end else if pos('résultats au total pour', Line) > 0 then begin StartPos := pos('résultats au total pour', Line); delete(Line, 1, StartPos); recupAmazon(Line, title); end; end; //------------------------------------------------------------------------------ // CREATION DE LA LISTE DE RESULTAT //------------------------------------------------------------------------------ procedure recupAmazon(Line, title : String); var StartPos: Integer; begin if (GetOption('Type de Lancement') = 0) or (GetOption('Type de Lancement') = 1) then begin PickTreeAdd('Films trouvΘs pour ' + title + ' :', ''); StartPos := pos('<a href=/exec/obidos/ASIN/', Line); repeat delete(Line, 1, StartPos+length('<a href=/exec/obidos/ASIN/')); //ajoute les films PickTreeAdd(recupTitle(Line) , recupImage(Line)); StartPos := pos('http://images-eu.amazon.com/images/P/', Line); delete(Line, 1, StartPos-1); StartPos := pos('<b>', Line); delete(Line, 1, StartPos-1); StartPos := pos('<a href=/exec/obidos/ASIN/', Line); until (StartPos = 0); PickTreeAdd(' ', ''); PickTreeAdd('Verifier si vous avez la derniΦre version', 'version'); PickTreeAdd('Pour me contacter', 'contact'); begin if PickTreeExec(Address)=true then begin if (Address = 'version') then begin verifVersion(); end else if (Address = 'contact') then begin Launch('iexplore.exe','http://forum.antp.be/phpbb2/viewtopic.php?t=1453'); end else begin if CanSetPicture then begin GetPicture(Address); end; //translated title if CanSetField(fieldTranslatedTitle) then SetField(fieldTranslatedTitle, formatTitre(MovieName,GetOption('Format du Titre'))); end; end; end; end else if (GetOption('Type de Lancement') = 2) then begin if compareTitle(MovieName,recupTitle(Line)) = 'OK' then begin importAmazon(Line); end else begin trouveTitle(Line,title); end; end; end; //------------------------------------------------------------------------------ // RECUPERE L'ADRESSE DE L'IMAGE //------------------------------------------------------------------------------ function recupImage(Line : String) : String; var ImageAddress : String; StartPos: Integer; begin StartPos := pos('http://images-eu.amazon.com/images/P/', Line); delete(Line, 1, StartPos-1); ImageAddress := copy(Line, 0, pos('"', Line) - 1); ImageAddress := StringReplace(ImageAddress, 'THUMBZZZ', 'LZZZZZZZ'); result := ImageAddress; end; //------------------------------------------------------------------------------ // RECUPERE LE TITRE //------------------------------------------------------------------------------ function recupTitle(Line : String) : String; var title : String; StartPos: Integer; begin StartPos := pos('http://images-eu.amazon.com/images/P/', Line); delete(Line, 1, StartPos-1); StartPos := pos('<b>', Line); delete(Line, 1, StartPos-1); title := copy(Line, 1, pos('</b></a>', Line)-1); HTMLRemoveTags(title); title := StringReplace(title, #13#10, ''); result := title; end; //------------------------------------------------------------------------------ // IMPORTE L'IMAGE AMAZON //------------------------------------------------------------------------------ procedure importAmazon(Line : String); var ImageAddress : String; StartPos: Integer; begin StartPos := pos('http://images-eu.amazon.com/images/P/', Line); delete(Line, 1, StartPos-1); ImageAddress := copy(Line, 0, pos('"', Line) - 1); ImageAddress := StringReplace(ImageAddress, 'THUMBZZZ', 'LZZZZZZZ'); Sleep(500); GetPicture(ImageAddress); end; //------------------------------------------------------------------------------ // SUPPRIME LES ACCENTS //------------------------------------------------------------------------------ function supprimeAccents(NomFilm : String) : String; begin NomFilm := StringReplace(NomFilm, 'Θ', 'e'); NomFilm := StringReplace(NomFilm, 'Φ', 'e'); NomFilm := StringReplace(NomFilm, 'α', 'a'); NomFilm := StringReplace(NomFilm, 'τ', 'c'); NomFilm := StringReplace(NomFilm, '∙', 'u'); NomFilm := StringReplace(NomFilm, 'δ', 'e'); NomFilm := StringReplace(NomFilm, 'Ω', 'e'); NomFilm := StringReplace(NomFilm, '⌠', 'o'); delete(NomFilm, pos(' - ',NomFilm), length(NomFilm)); if (pos(', ',NomFilm) > 0) then delete(NomFilm, 1, pos(', ',NomFilm)+1); if (pos('(',NomFilm) > 0) then delete(NomFilm, pos('(',NomFilm), length(NomFilm)); if (pos(':',NomFilm) > 0) then delete(NomFilm, pos(':',NomFilm), length(NomFilm)); result := trim(NomFilm); end; //------------------------------------------------------------------------------ // VERIFIE LE RESULTAT AMAZON //------------------------------------------------------------------------------ function compareTitle(titleAllo, title : String) : String; begin title := supprimeAccents(trim(AnsiLowerCase(title))); titleAllo := supprimeAccents(trim(AnsiLowerCase(titleAllo))); if (title = titleAllo) then begin result := 'OK'; end else begin result := 'KO'; end; end; //------------------------------------------------------------------------------ // TROUVE LE BON TITRE SI LE PREMIER N'EST PAS LE BON //------------------------------------------------------------------------------ procedure trouveTitle(Line, title : String); var StartPos: Integer; oK : String; begin StartPos := pos('<a href=/exec/obidos/ASIN/', Line); repeat delete(Line, 1, StartPos+length('<a href=/exec/obidos/ASIN/')); oK := compareTitle(title,recupTitle(Line)); if oK = 'OK' then importAmazon(Line); StartPos := pos('http://images-eu.amazon.com/images/P/', Line); delete(Line, 1, StartPos-1); StartPos := pos('<b>', Line); delete(Line, 1, StartPos-1); StartPos := pos('<a href=/exec/obidos/ASIN/', Line); until (StartPos = 0) or (oK = 'OK'); end; //------------------------------------------------------------------------------ // NETTOIE LE TITRE DU FICHIER POUR AVOIR LE TITRE DE FILM //------------------------------------------------------------------------------ function cleanTitle(title : String) : string; var i,j, fin : Integer; temp : String; begin title := AnsiUpperCase(title); if title <> '' then begin // Nettoie les tags fichiers, merci Atmosfear pour les tags i:=pos('.DVD',title); if i <> 0 then begin title := copy(title,1,i-1); end; i:=pos('.DIVX',title); if i <> 0 then begin title := copy(title,1,i-1); end; i:=pos('.FREN',title); if i <> 0 then begin title := copy(title,1,i-1); end; i:=pos('.GERM',title); if i <> 0 then begin title := copy(title,1,i-1); end; i:=pos('.INT',title); if i <> 0 then begin title := copy(title,1,i-1); end; i:=pos('.LIM',title); if i <> 0 then begin title := copy(title,1,i-1); end; i:=pos('.PROP',title); if i <> 0 then begin title := copy(title,1,i-1); end; i:=pos('.REPACK',title); if i <> 0 then begin title := copy(title,1,i-1); end; i:=pos('.SUBB',title); if i <> 0 then begin title := copy(title,1,i-1); end; i:=pos('.UNSUB',title); if i <> 0 then begin title := copy(title,1,i-1); end; i:=pos('.WS',title); if i <> 0 then begin title := copy(title,1,i-1); end; i:=pos('.XVID',title); if i <> 0 then begin title := copy(title,1,i-1); end; i:=pos('.AC3',title); if i <> 0 then begin title := copy(title,1,i-1); end; i:=pos('.UNRAT',title); if i <> 0 then begin title := copy(title,1,i-1); end; title := StringReplace(title, '.', ' '); title := StringReplace(title, ',', ' '); title := StringReplace(title, ':', ''); title := StringReplace(title, '-', ''); title := StringReplace(title, ' ', ' '); i := 0; // Nettoie les tags de team if (pos('(',title) <> 0) then begin i := pos('(',title); temp := copy(title,0,i-1); j := pos(')',title); fin := Length(title); title := temp + copy(title,j+1,fin); end; if (pos('[',title) <> 0) then begin i := pos('[',title); temp := copy(title,1,i-1); j := pos(']',title); fin := Length(title); title := temp + copy(title,j+1,fin); end; title := AnsiLowerCase(title); title := AnsiUpFirstLetter(title); title := AnsiMixedCase(title,' -'); end; result := title; end; //------------------------------------------------------------------------------ // PROGRAMME PRINCIPAL //------------------------------------------------------------------------------ begin if CheckVersion(3,5,0) then begin if (GetOption('Recherche sur le titre') = 0) then begin MovieName := GetField(fieldTranslatedTitle); if MovieName = '' then MovieName := GetField(fieldOriginalTitle); end else if (GetOption('Recherche sur le titre') = 1) then begin MovieName := GetField(fieldOriginalTitle); if MovieName = '' then MovieName := GetField(fieldTranslatedTitle); end; MovieName := cleanTitle(MovieName); if (GetOption('Type de Lancement') = 0) then begin if Input('Amazon.fr (Image Only) by ScorEpioN', 'Entrez le titre du film :', MovieName) then begin imageAmazon(MovieName); end; end else begin if (premiereExecution = 0) then begin premiereExecution := -1; if (ShowConfirmation('Vous allez executer le script sans confirmation, cliquer sur ''''OUI'''' pour continuer') = True) then begin imageAmazon(MovieName); end else exit; end else begin imageAmazon(MovieName); end; end; end else ShowMessage('This script requires a newer version of Ant Movie Catalog (at least the version 3.5.0)'); end.